/*
 * Copyright (C) 2012 Tomas Shestakov. <http://code.google.com/p/jmmo/>
 */

package jmmo.engine.multifacetedactor

/**
 * Messages have circulated only within `MultifacetedActor` and not sent out from actor.
 * Сообщения имеющие хождение только внутри `MultifacetedActor` и не отсылается вне актера.
 * @author Tomas Shestakov
 */
sealed trait RoleEvent

/**
 * <p>Сообщение уведомляющее о том, что некоторая роль стала доступной для приема сообщений.
 * <p>The message is sent from the role which became available to receive messages.
 * @param role the role which became available | роль которая стала доступной
 */
case class RoleAvailable(role: ActorRole) extends RoleEvent

/**
 * <p>Сообщение уведомляющее о том, что некоторая роль перестала быть доступной для приема сообщений.
 * <p>The message is sent from the role when it is no longer available to receive messages.
 * @param role the role that is no longer available | роль которая перестала быть доступной
 */
case class RoleRevoked(role: ActorRole) extends RoleEvent
